home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 12 / BBS in a box XII-1.iso / Files / Unstuffers / Other Compression / MacGzip 0.21-src-c.sit / macgzip_021-src / macos / !Posix / ThinkCPosix / utime.c < prev   
Encoding:
C/C++ Source or Header  |  1993-02-21  |  670 b   |  37 lines  |  [TEXT/KAHL]

  1. /* $Id: $ */
  2.  
  3. #include "ThinkCPosix.h"
  4.  
  5. int utime (char *filename,struct utimbuf *times)
  6. {
  7.     CInfoPBRec cipbr;
  8.     HFileInfo *fpb = (HFileInfo*)&cipbr;
  9.     DirInfo *dpb = (DirInfo*)&cipbr;
  10.     unsigned char pname[256];
  11.     short err;
  12.  
  13.     strcpy((char*)pname, filename);
  14.     c2pstr(pname);
  15.  
  16.     dpb->ioDrDirID = 0L;
  17.     fpb->ioNamePtr = pname;
  18.     fpb->ioVRefNum = 0;
  19.     fpb->ioFDirIndex = 0;
  20.     fpb->ioFVersNum = 0;
  21.     err = PBGetCatInfo(&cipbr, FALSE);
  22.     if (err != noErr) {
  23.         errno = ENOENT;
  24.         return -1;
  25.     }
  26.     dpb->ioDrDirID = 0L;
  27.     fpb->ioFlMdDat = times->modtime;
  28.     fpb->ioFlCrDat = times->actime;
  29.     err = PBSetCatInfo(&cipbr, FALSE);
  30.     if (err != noErr) {
  31.         errno = EACCES;
  32.         return -1;
  33.     }
  34.     return 0;
  35. }
  36.  
  37.